import {
  HttpApi
} from '../../model/index.js'
const httpApi = new HttpApi

const QQMapWX = require('../../model/qqmap-wx-jssdk.min.js');
let qqmapsdk;

Page({

  /**
   * 页面的初始数据
   */
  data: {
    patrolNum: null, //巡逻编号
    location: null, //经纬度
    remark: '',
    remarkShow: true,
    userinfo: null,
    markers: [],
    poi: null,
    address: ''
  },
  /**
   * 添加记录
   */
  addPatrolRecord: function() {
    let imageList = this.selectComponent('#addImg').data.imageList;
    if (imageList.length === 0) {
      wx.showToast({
        title: '现场照片不能为空',
        icon: "none"
      })
      return
    }
    if (!this.data.location) {
      wx.showToast({
        title: '请点击定位获取您的位置',
        icon: "none"
      })
      return
    }
    let params = {
      patrolNum: this.data.patrolNum,
      imageList: imageList,
      location: this.data.location,
      remark: this.data.remark
    }
    wx.showLoading({
      title: '加载中',
    })
    httpApi.AddPatrolRecord(params).then(res => {
      wx.hideLoading()
      wx.showToast({
        title: '添加成功',
        icon: 'success',
        duration: 1000
      })
      setTimeout(() => {
        wx.switchTab({
          url: '/pages/index/index'
        })
      }, 2000)
    })
  },
  /**
   * 设置备注
   */
  bindKeyInput: function (e) {
    let name = e.currentTarget.dataset.name;
    this.setData({
      [name]: e.detail.value
    })
  },
  /**
   * 获取备注焦点
   */
  getBindFocus: function(e) {
    this.setData({
      remarkShow: false
    })
  },
  /**
   * 失去备注焦点
   */
  getBindBlur: function(e) {
    if (!e.detail.value) {
      this.setData({
        remarkShow: true
      })
    }
  },
  /**
   * 定位
   */
  onAddress: function() {
    wx.showLoading({
      title: '定位中',
    })
    wx.getLocation({
      type: 'gcj02',
      sHighAccuracy: true,
      success: (res) => {
        const latitude = res.latitude
        const longitude = res.longitude
        this.setData({
          location: `${latitude},${longitude}`
        })
        this.getMap(this.data.location)
      }
    })
  },
  /**
   * 地图
   */
  getMap: function(location) {
    var _this = this;
    qqmapsdk.reverseGeocoder({
      //位置坐标，默认获取当前位置，非必须参数
      location: location || '', //获取表单传入的位置坐标,不填默认当前位置,示例为string格式
      //get_poi: 1, //是否返回周边POI列表：1.返回；0不返回(默认),非必须参数
      success: function(res) { //成功后的回调
        console.log(res);
        var res = res.result;
        var mks = [];
        //当get_poi为0时或者为不填默认值时，检索目标位置，按需使用
        mks.push({ // 获取返回结果，放到mks数组中
          title: res.address,
          id: 0,
          latitude: res.location.lat,
          longitude: res.location.lng,
          iconPath: '/image/icon/location.png', //图标路径
          width: 30,
          height: 30,
          callout: { //在markers上展示地址名称，根据需求是否需要
            content: res.address,
            color: '#000',
            display: 'ALWAYS'
          }
        });
        _this.setData({ //设置markers属性和地图位置poi，将结果在地图展示
          markers: mks,
          poi: {
            latitude: res.location.lat,
            longitude: res.location.lng
          },
          address: res.address
        });
        wx.hideLoading()
      },
      fail: function(error) {
        console.error(error);
      },
      complete: function(res) {
        console.log(res);
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    this.setData({
      patrolNum: options.id,
      userinfo: wx.getStorageSync('userinfo')
    })
    wx.setNavigationBarTitle({
      title: `添加巡检记录-${options.id}`
    })
    qqmapsdk = new QQMapWX({
      key: 'PEMBZ-UWUCU-AWPVB-BJ3FG-SLPMJ-OVBEK'
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})